home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
asmexam.arc
/
ODDS.ASM
< prev
next >
Wrap
Assembly Source File
|
1984-03-17
|
1KB
|
65 lines
PAGE 55,132
DATA SEGMENT PARA
VAR1 DW 4
VAR2 DB 5
RES DW ?
DATA ENDS
STACK SEGMENT STACK
DW 10 DUP(?)
STACK ENDS
CODE SEGMENT PARA
ASSUME CS:CODE,DS:DATA,SS:STACK
ORG 100H
START: MOV AX,VAR1 ; DATA MOVED FROM DATA SEGMENT TO REGISTER
PUSH AX ; CONTENTS MOVED TO STACK
PUSH DS ; PUSH DATA SEGMENT ADDRESS TO STACK
PUSHF ; PUSH FLAG REGISTER ON STACK
SUB AX,4 ; ALTER FLAGS
POPF ; POP OUT OLD FLAGS
MOV DS,CX ; CHANGE DS VALUE
POP DS ; RESTORE OLD VALUE
POP AX ; POP VAR1 BACK TO AX
CALL ODDENDS
MOV AL,VAR2
PUSH DS
CALL TRANSLATE
POP DS
NOP
ODDENDS PROC NEAR
XCHG BX,AX ; XCHANGE AX <---> BX
STC ; SET CARRY
CLD ; CLEAR DIRECTION
CLI ; CLEAR INTERRUPT
LAHF ; LOAD FLAGS INTO AH
RET
ODDENDS ENDP
TRANSLATE PROC NEAR
; ASSUME AL CONTAINS CODE READ IN
LDS BX,CS:TAB_POINTER
XLAT CS:XMIT_TABLE ;M(BX+AL) --> AL
RET
TAB_POINTER DD XMIT_TABLE
XMIT_TABLE DB '5791368024'
TRANSLATE ENDP
CODE ENDS
END START